#include "comm.hpp"

int main()
{
    Init init; // 建立管道

    // 创建共享内存
    int shmid = creatshm();

    // 挂接到进程地址空间
    char *shmaddr = (char *)shmat(shmid, nullptr, 0);

    int fd = open(PATH, O_RDONLY);
    if (fd < 0)
    {
        log(Fatal, "open error:%s", strerror(errno));
        exit(FIFO_OPEN_ERR);
    }

    // 开始通信
    while (true)
    {
        char c;
        int n=read(fd, &c, 1);  //写端不写入 会一直阻塞
        if(n==0) break;

        cout << "client say@ " << shmaddr << endl; // 直接访问共享内存
        sleep(1);
    }

    // 去关联
    shmdt(shmaddr);

    // 释放共享内存
    shmctl(shmid, IPC_RMID, NULL);

    return 0;
}